package co.com.inventarios.logica;

import java.util.List;

import co.com.inventarios.modelo.Bodega;
import co.com.inventarios.modelo.Cataventa;
import co.com.inventarios.modelo.Mngtdc;
import co.com.inventarios.modelo.MngtdcId;
import co.com.inventarios.modelo.MngtdcWork;
import co.com.inventarios.modelo.Unimed;
import co.com.inventarios.persistencia.BodegaDAO;
import co.com.inventarios.persistencia.CataventaDAO;
import co.com.inventarios.persistencia.EntityManagerHelper;
import co.com.inventarios.persistencia.MngtdcDAO;
import co.com.inventarios.persistencia.QueryMngtdcDAO;
import co.com.inventarios.persistencia.QueryUnimedDAO;

public class MngtdcLogica implements IMngtdcLogica {

	public MngtdcWork[] findMngtdcSelectedRow(List<Mngtdc> lista)
			throws Exception {
		MngtdcWork doc;
		int max = lista.size();
		MngtdcWork[] arrayDoc = new MngtdcWork[max];
		if (lista != null) {
			for (int i = 0; i < max; i++) {
				doc = new MngtdcWork();
				doc.setMngtdcw(lista.get(i));
				arrayDoc[i] = doc;
			}
		}
		return arrayDoc;
	}

	public Cataventa findByIdCataventa(String codigo)throws Exception {
		return new CataventaDAO().findById(codigo);
	}
	
	public List<Mngtdc> findByPropertyAll(String propiedad, String valor,
			String espresion) throws Exception {
		return new QueryMngtdcDAO().findByPropertyAll(propiedad, valor,
				espresion);
	}
	

	public List<Mngtdc> findAll(String espresion) throws Exception {
		return new QueryMngtdcDAO().findBy_all(espresion);
	}

	public Mngtdc findByIdMngtdc(MngtdcId codigo)throws Exception {
		return new MngtdcDAO().findById(codigo);
	}
	
	public void Eliminar_Mngtdc(Mngtdc reg) throws Exception {
		try {
			EntityManagerHelper.getEntityManager().getTransaction().begin();
			new MngtdcDAO().delete(reg);
			EntityManagerHelper.getEntityManager().getTransaction().commit();
		} catch (Exception ex) {
			ex.printStackTrace();
			EntityManagerHelper.getEntityManager().getTransaction().rollback();
		}

	}
	
	public void Guarda_Mngtdc(Mngtdc reg) throws Exception { 
		try {
			EntityManagerHelper.getEntityManager().getTransaction().begin();
			new MngtdcDAO().save(reg);
			EntityManagerHelper.getEntityManager().getTransaction().commit();
		} catch (Exception ex) {
			ex.printStackTrace();
			EntityManagerHelper.getEntityManager().getTransaction().rollback();
		}

	}
	
	public void Modifica_Mngtdc(Mngtdc reg) throws Exception {
		try {
			EntityManagerHelper.getEntityManager().getTransaction().begin();
			new MngtdcDAO().update(reg);
			EntityManagerHelper.getEntityManager().getTransaction().commit();
		} catch (Exception ex) {
			ex.printStackTrace();
			EntityManagerHelper.getEntityManager().getTransaction().rollback();
		}

	}
	
	public Mngtdc findByPropertyActivo(String propiedad,
			String valor) throws Exception {
		return new QueryMngtdcDAO().findByPropertyActivo(propiedad, valor);
	}
	
	
	public List<Mngtdc> findByPropertyActivoLista(String propiedad) throws Exception {
		return new QueryMngtdcDAO().findByPropertyActivoLista(propiedad);
	}
	

}
